#include <stdio.h>
// 判断数组arr中是否存在target，若存在，返回其下标；若不存在，返回-1
int binarySearch(int arr[], int size, int target){
    int left = 0, right = size - 1; // 左右指针
    while(left <= right){
        int mid = left + (right - left) / 2; // 计算中间下标
        if (arr[mid] == target){
            return mid; // 找到目标值，返回下标
        }
        else if (arr[mid] < target){
            left = mid + 1; // 目标值在右半部分，更新左指针
        }
        else{
            right = mid - 1; // 目标值在左半部分，更新右指针
        }
    }
    return -1; // 未找到目标值，返回-1
}

int main(){
    int arr[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
    int size = sizeof(arr) / sizeof(arr[0]);    // 数组大小
    int target = 15;       // 目标值
    int result = binarySearch(arr, size, target);    // 调用函数
    if (result == -1){    // 未找到目标值
        printf("%d not found in the array\n", target);    // 输出提示信息
    }
    else{    // 找到目标值
        printf("%d found at index %d\n", target, result);    // 输出提示信息
    }
    return 0;    // 正常退出
}